跳到主要内容

1.4 二进制相乘

二进制乘法器是一种用于数字系统中执行两个二进制数乘法运算的组合逻辑电路。它们在许多应用中,尤其是在数字信号处理领域,用于执行各种算法,被广泛使用。

商业应用,如计算机、手机、高速计算器以及一些通用处理器,都需要二进制乘法器。

与加法和减法相比,乘法是一个更复杂的过程。在乘法过程中,被另一个数乘的数称为被乘数(multiplicand),而用来乘的数称为乘数(multiplier)。

二进制乘法

与十进制数的乘法类似,二进制乘法遵循相同的过程来产生两个二进制数的乘积结果。由于二进制数只包含0和1,因此二进制乘法更为简单。二进制乘法的四个基本规则如下:

0×0=00 \times 0 = 0
0×1=00 \times 1 = 0
1×0=01 \times 0 = 0
1×1=11 \times 1 = 1

两个二进制数的乘法可以通过两种常用方法实现,即部分积加法和移位法,以及使用并行乘法器。

在讨论类型之前,让我们先看看无符号二进制数的乘法过程。考虑两个4位二进制数 1010 和 1011,它们的乘法过程如下:

alt text

从上述乘法过程可以看出,对于乘数中的每一位,都会生成一个部分积。然后将所有这些部分积相加,以产生最终的乘积值。在部分积乘法中,当乘数位为0时,部分积为0;当乘数位为1时,部分积等于被乘数。

与十进制数类似,每个后续的部分积在求和之前都会相对于前一个部分积向左移一位。因此,这种乘法使用 nn 次移位和加法来乘以 nn 位二进制数。实现这种乘法的组合电路称为阵列乘法器(array multiplier)或组合乘法器(combinational multiplier)。

并行二进制乘法器电路

让我们考虑两个无符号的2位二进制数 AABB,以概括乘法过程。被乘数 AA 等于 A1A0A_1A_0,乘数 BB 等于 B1B0B_1B_0。下图展示了两个2位二进制数的乘法过程。

alt text

这个过程涉及两个数字的乘法以及带或不带进位的数字相加。在将每一位与被乘数相乘后,生成部分积,然后将这些部分积相加,以产生总和,表示二进制乘法的结果。

这种乘法通过组合电路实现,其中乘法由与门完成,而加法则通过使用半加器完成,如下图所示。

alt text

第一个部分积由与门获得,这实际上是乘法结果的最低有效位。由于第二个部分积向左移一位,因此第一个部分积的第二项和第二个部分积的第一项通过半加器相加,并产生和输出以及进位输出。

如图所示,这个进位输出作为输入添加到下一个半加器中。同样,它通过使用简单的电路配置来产生两个二进制数的乘法结果。两个2位二进制数的乘法结果是一个4位二进制数。

让我们考虑两个无符号的4位二进制数的乘法,其中被乘数 AA 等于 A3A2A1A0A_3A_2A_1A_0,乘数 BB 等于 B3B2B1B0B_3B_2B_1B_0。根据乘数的每一位与被乘数相乘,生成部分积。

每个部分积包含四个乘积项,这些项相对于前一个部分积向左移位,如下图所示。将所有这些部分积相加,以产生8位乘积。

alt text

4×4二进制乘法的逻辑电路可以通过使用三个二进制全加器和与门来实现。

在上述操作中,第一个部分积是通过将 B0B_0A3A2A1A0A_3A_2A_1A_0 相乘获得的,第二个部分积是通过将 B1B_1A3A2A1A0A_3A_2A_1A_0 相乘形成的,依此类推,对于第三个和第四个部分积也是如此。因此,这些部分积可以通过与门实现,如下图所示。

然后使用4位并行加法器将这些部分积相加。第一个部分积的三个最高有效位与进位(视为零)一起在第一个全加器中与第二个部分积相加。

然后将结果与下一个部分积以及进位输出相加,并依次进行,直到最后一个部分积,最终产生8位和,表示两个二进制数的乘法值。

alt text

使用移位法的二进制乘法器

除了上述自动化方法外,还可以通过使用 nn 位加法器、四个寄存器(A、B、C 和 Q)以及移位和控制逻辑来实现手动乘法方法,如下图所示。

在这里,4位乘数存储在 Q 寄存器中,4位被乘数存储在 B 寄存器中,而 A 寄存器最初被清零。乘法过程从检查 B 的最低有效位是否为0或1开始。

如果 B0=1B_0 = 1,则 B 中的数与 A 寄存器的最低有效位相加,并且 C、A 和 Q 寄存器的所有位都向右移一位。

如果 B0=0B_0 = 0,则 C 和 Q 寄存器组合向右移一位,而不执行任何加法。这个过程对于 nn 位数重复 nn 次。这种二进制乘法方法称为并行乘法器

alt text

考虑下图,其中乘数和被乘数的值分别为 1011 和 1101,它们分别加载到 Q 和 A 寄存器中。最初,C 寄存器为零,因此 A 寄存器也为零,它存储加法中的进位。

由于 B0=1B_0 = 1,因此 B 中的数与 A 的位相加,并产生加法结果 1101,然后 Q 和 A 寄存器将其值向右移一位,因此在第一个周期中,它们的新值分别为 0110 和 1101。

这个过程需要重复四次,以完成4位乘法。最终的乘法结果将出现在 A 和 Q 寄存器中,如下图所示,为 10001111。

alt text

一个4×4无符号二进制乘法器接收两个4位输入,并产生一个8位输出。类似地,8×8乘法器接收两个8位输入,并生成一个16位输出。

这些乘法器逻辑电路被实现为具有各种引脚配置的集成电路。

这些集成电路被用于许多应用,特别是在计算机、控制设备、计算器、手机、数字信号处理器(DSP)等中使用的各种微处理器。